Skip to content

feat: resolve repo UUID for gRPC calls via REST API#8

Merged
markovejnovic merged 3 commits intostagedfrom
feat/grpc
Feb 27, 2026
Merged

feat: resolve repo UUID for gRPC calls via REST API#8
markovejnovic merged 3 commits intostagedfrom
feat/grpc

Conversation

@markovejnovic
Copy link
Collaborator

@markovejnovic markovejnovic commented Feb 17, 2026

Summary

  • RepoClient::change() is now async — fetches repo metadata via REST to get the UUID expected by the gRPC data plane
  • ChangeClient::new() accepts repo_id: String (UUID) instead of org/repo
  • ChangeClient tracks last_op_id via AtomicU64 and passes it as expected_last_op_id in apply_ops and snapshot requests (required by server)

This is a breaking API change.

Test plan

  • cargo check -p mesa-dev compiles
  • cargo test --workspace --no-run compiles
  • hl_create_change — PASS on staging
  • hl_create_file (apply_ops + snapshot) — PASS on staging
  • hl_delete_file — PASS on staging
  • hl_modify_file — PASS on staging
  • hl_move_file — PASS on staging
  • hl_write_then_read — REST content read-back returns FILE_NOT_FOUND after successful gRPC snapshot (staging propagation issue)

@mesa-dot-dev
Copy link

mesa-dot-dev bot commented Feb 17, 2026

Mesa Description

Summary

  • RepoClient::change() is now async — fetches repo metadata via REST to get the UUID expected by the gRPC data plane
  • ChangeClient::new() accepts repo_id: String (UUID) instead of org/repo
  • ChangeClient tracks last_op_id via AtomicU64 and passes it as expected_last_op_id in apply_ops and snapshot requests (required by server)

This is a breaking API change.

Test plan

  • cargo check -p mesa-dev compiles
  • cargo test --workspace --no-run compiles
  • hl_create_change — PASS on staging
  • hl_create_file (apply_ops + snapshot) — PASS on staging
  • hl_delete_file — PASS on staging
  • hl_modify_file — PASS on staging
  • hl_move_file — PASS on staging
  • hl_write_then_read — REST content read-back returns FILE_NOT_FOUND after successful gRPC snapshot (staging propagation issue)

Description generated by Mesa. Update settings

Copy link

@mesa-dot-dev mesa-dot-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Performed full review of 0141cd1...7b17121

Analysis

  1. Build script requires proto sources at compile time, but these sources are not versioned, which will break downstream builds.
  2. gRPC runtime dependencies are added unconditionally without feature gates, forcing all consumers to inherit a heavy async stack before any gRPC API surface exists.
  3. The PR leaves the application-layer implementation incomplete - needs either committed proto definitions with generated bindings or feature-gated build steps.
  4. Current implementation will prevent the existing REST client from building until the gRPC components are fully implemented.

Tip

Help

Slash Commands:

  • /review - Request a full code review
  • /review latest - Review only changes since the last review
  • /describe - Generate PR description. This will update the PR body or issue comment depending on your configuration
  • /help - Get help with Mesa commands and configuration options

0 files reviewed | 1 comments | Edit Agent SettingsRead Docs

@markovejnovic markovejnovic changed the base branch from main to staged February 25, 2026 22:40
@markovejnovic markovejnovic changed the title Feat/grpc feat: resolve repo UUID for gRPC calls via REST API Feb 27, 2026
These APIs were removed from the generated OAPI crate in the rebase
target. Drop the corresponding high-level client wrappers and test
references.
@markovejnovic markovejnovic merged commit 69b38ce into staged Feb 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant